// Tierless
// Copyright © 2010 Alphora
// This file is licensed under a modified BSD-license (see tierless_license.txt).

using Tierless.Framework.Data;

namespace Tierless.Framework.Data
{
	/// <summary>
	/// Defines the interface for requesting entities from an entity manager.
	/// </summary>
	public interface IEntityAccessor
	{
		/// <summary>
		/// Retrieves a dictionary of entity sets containing the result of the given entity requests.
		/// </summary>
		/// <param name="ARequests">A list of EntityRequest instances describing the entities to be retrieved.</param>
		/// <returns>A dictionary of entity sets containing the result of the given entity requests.</returns>
		EntitySets RequestEntity(EntityRequests ARequests);

		/// <summary>
		/// Retrieves a dictionary of entity sets containing the result of the given entity request.
		/// </summary>
		/// <param name="ARequest">The request describing the entities to be retrieved.</param>
		/// <returns>A dictionary of entity sets containing the result of the given entity request.</returns>
		EntitySets RequestEntity(EntityRequest ARequest);
	}
}